package com.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.Dictionary;
import com.demo.entity.Vo.DictionaryVo;
import com.demo.entity.from.DictionaryFrom;
import com.demo.response.Result;

import java.util.List;

/**
 * 数据字典表非固定值的可后期增变的及全局信息如医院名称、医院logo等 服务类
 * @author zm
 * @since 2020-11-24
 */
public interface IDictionaryService extends IService<Dictionary> {

    /**
     * 新增数据字典信息
     * @param dictionary       实体对象
     * @return
     */
    Result addDictionary(Dictionary dictionary);

    /**
     * 更新数据字典信息
     * @param dictionary       实体对象
     * @return
     */
    Result updateDictionary(List<DictionaryFrom> dictionary) throws Exception;

    /**
     * 查询消息推送设置
     * @param parentDictionaryCode    上级字典编码
     * @return
     */
    Result getMesgPush(Integer parentDictionaryCode);

    /**
     * 查询消息推送设置【定时任务】
     * @param parentDictionaryCode    上级字典编码
     * @return
     */
    List<DictionaryVo> getMesgPushTiming(Integer parentDictionaryCode);

    /**
     * 删除数据字典信息
     * @param dictionaryCode    字典编码
     * @param deletedUserId     删除人ID号
     * @return
     */
    Result deleteDictionary(Integer dictionaryCode,Integer deletedUserId);

    /**
     * 数据字典详情
     * @param dictionaryCode   数据字典ID
     * @return
     */
    Dictionary getDictionaryDesc(Integer dictionaryCode);


    /**
     * 消息推送查询
     * @param parentDictionaryCode    上级字典编码
     * @param enumeration_name         评估类型
     * @return
     */
    List<Dictionary> getMesgType(Integer parentDictionaryCode,String enumeration_name );

    /**
     * 消息推送查询---返回单个对象
     * @param parentDictionaryCode    上级字典编码
     * @param enumeration_name         评估类型名称
     * @return
     */
    Dictionary getMesgSingleObject(Integer parentDictionaryCode,String enumeration_name );

    /**
     * 通过消息名称，获取消息ID
     * @param enumeration_name         评估类型名称
     * @return
     */
    Dictionary getMesgTypeById(String enumeration_name);

    /**
     * 通过消息名称，获取消息ID(不包含状态为0d)
     * @param enumeration_name         评估类型名称
     * @return
     */
    Dictionary getMesgStatus(Integer parentDictionaryCode,String enumeration_name,String enumeration_value);

    /**
     * 查询医院名称
     * @return
     */
    Dictionary selectHospitalName();

    /**
     * 查询医院LOGO
     * @return
     */
    Dictionary selectHospitalLogo();

}
